package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.system.domain.Post;
import com.ruoyi.system.domain.Comment;
import com.ruoyi.system.domain.dto.PostDTO;

/**
 * 帖子管理Service接口
 * 
 * @author ruoyi
 * @date 2025-06-25
 */
public interface IPostService 
{
    /**
     * 查询帖子
     * 
     * @param id 帖子主键
     * @return 帖子
     */
    public Post selectPostById(Long id);

    /**
     * 查询帖子列表
     * 
     * @param post 帖子
     * @return 帖子集合
     */
    public List<Post> selectPostList(Post post);

    /**
     * 新增帖子
     * 
     * @param post 帖子
     * @return 结果
     */
    public int insertPost(PostDTO post);

    /**
     * 修改帖子
     * 
     * @param post 帖子
     * @return 结果
     */
    public int updatePost(Post post);

    /**
     * 批量删除帖子
     * 
     * @param ids 需要删除的帖子主键集合
     * @return 结果
     */
    public int deletePostByIds(Long[] ids);

    /**
     * 删除帖子信息
     * 
     * @param id 帖子主键
     * @return 结果
     */
    public int deletePostById(Long id);

    /**
     * 获取用户可发帖的社团列表
     * 
     * @return 社团列表
     */
    public List<Post> getUserClubs();

    /**
     * 查询评论列表
     * 
     * @param comment 评论
     * @return 评论集合
     */
    public List<Comment> selectCommentList(Comment comment);

    /**
     * 新增评论
     * 
     * @param comment 评论
     * @return 结果
     */
    public int insertComment(Comment comment);

    /**
     * 点赞评论
     * 
     * @param commentId 评论ID
     * @return 结果
     */
    public int likeComment(Long commentId);

    /**
     * 点赞帖子
     * 
     * @param postId 帖子ID
     * @return 结果
     */
    public int likePost(Long postId);

    /**
     * 增加浏览量
     * 
     * @param postId 帖子ID
     * @return 结果
     */
    public int increaseViewCount(Long postId);
} 